﻿//////////////////////////////////////////////////////////////////
//
// Material.cs
//
// Copyright (c) 2012 Dan Pike. All rights reserved
//
// Refer to license.txt for any license restrictions.
// 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entities
{
   public abstract class Material : CityEntity
   {
      //////////////////////////////////////////////////////////////////////////
      //
      public Material(World world)
         : base(world)
      {
         growthRatio_ = 1.0;
      }

      //////////////////////////////////////////////////////////////////////////
      //
      public Factory producer
      {
         get { return producer_; }
         internal set { producer_ = value; }
      }
      
      //////////////////////////////////////////////////////////////////////////
      //
      public double growthRatio
      {
         get { return growthRatio_; }
         set { growthRatio_ = value; }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      public abstract double perPopulation { get; }
      public abstract int buyPrice { get; }
      public abstract int sellPrice { get; }
      
      //////////////////////////////////////////////////////////////////////////
      //
      private Factory producer_;
      private double growthRatio_;
   }
}
